<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
class LogisticsController extends Controller
{
    public function getAdd(){
        return view('admin.logistics.add');
    }

    public function postInsert(Request $request){

        $data = $request -> all();
        // dd($data);
        //先判断图片是否上传 进行上传图片的处理 缩放 160*160
        if(!empty($data['logisticspic'])){
            //获取上传文件的后缀
            $ext = $request -> file('logisticspic') -> getClientOriginalExtension();
            //随机生成一个文件前缀名字
            $filename = date('Ymd',time()).mt_rand(10000,99999);
            //前缀后缀拼接成最后新的文件名称
            $newfilename = $filename.'.'.$ext;
            //上传文件到指定目录
            $request -> file('logisticspic') -> move('admin_assoc/images/logisticspic/',$newfilename);
            //获取上传文件的长宽
            $arr = getimagesize('admin_assoc/images/logisticspic/'.$newfilename);
            $width = $arr[0];
            $height = $arr[1];
            //根据指定大小来进行缩放处理
            self::suofang('admin_assoc/images/logisticspic/'.$newfilename,180,180,$pre = 'logisticspic_');
            //缩放完成后删除上传的原图片
            unlink('admin_assoc/images/logisticspic/'.$newfilename);
            //最后需要存储到数据库的图片名字
            $logisticspic = 'logisticspic_'.$newfilename;
        
           }else{
            //将为对应的数据库图片查询出来
                $s = DB::table('tbl_logistics')
                            ->where('id',$data['id'])
                            ->first();
                $logisticspic = $s['logisticspic'];
           }   

           // $data['goodstime'] = date('Y-m-d H:i:s',time());
           //将接受到的的数据修改进数据库
      
            $arr = $request -> except('_token','id','logisticspic');
            $arr['logisticspic'] = $logisticspic;
             // var_dump($arr);exit;
            $res = DB::table('tbl_logistics') ->insert($arr);  
            if($res){
                return redirect('/admin/logistics/index') -> with('success','添加成功');
            }else{
                return back()-> withInput() -> with('error','添加失败');
            }

        }
         /**
         * 等比缩放函数（以保存的方式实现）
         * @param string $picname 被缩放的处理图片源
         * @param int $maxx 缩放后图片的最大宽度
         * @param int $maxy 缩放后图片的最大高度
         * @param string $pre 缩放后图片名的前缀名
         * @return String 返回后的图片名称(带路径)；
         */
        static function suofang($picname,$maxx=126,$maxy=66,$pre="logisticspic_"){
            $info = getimageSize($picname); //获取图片的基本信息

            $w = $info[0];//获取宽度
            $h = $info[1];//获取高度
            
            //获取图片的类型并为此创建对应图片资源    
            switch($info[2]){
                case 1: //gif
                    $im = imagecreatefromgif($picname);
                    break;
                case 2: //jpg
                    $im = imagecreatefromjpeg($picname);
                    break;
                case 3: //png
                    $im = imagecreatefrompng($picname);
                    break;
                default:
                    die("图片类型错误！");
            }
            
            //计算缩放比例
                if(($maxx/$w)>($maxy/$h)){
                    $b = $maxy/$h;
                }else{
                    $b = $maxx/$w;
                }
            
            //计算出缩放后的尺寸
                $nw = floor($w*$b);
                $nh = floor($h*$b);
                
                //创建一个新的图像源(目标图像)
                $nim = imagecreatetruecolor($nw,$nh);
                    
                //执行等比缩放
                imagecopyresampled($nim,$im,0,0,0,0,$nw,$nh,$w,$h);
                
                //输出图像（根据源图像的类型，输出为对应的类型）
                $picinfo = pathinfo($picname);//解析源图像的名字和路径信息
                $newpicname= $picinfo["dirname"]."/".$pre.$picinfo["basename"];
                switch($info[2]){
                    case 1:
                        imagegif($nim,$newpicname);
                        break;
                    case 2:
                        imagejpeg($nim,$newpicname);
                        break;
                    case 3:
                        imagepng($nim,$newpicname);
                        break;
            }
                //释放图片资源
                imagedestroy($im);
                imagedestroy($nim);
                //返回结果 
                return $newpicname;
        }
    
        public function getIndex(Request $request){
        //获取设定的分页一页信息条数
        $count = $request->input('count',10);
        //获取查询条件
        $search = $request -> input('search','');
        //查询数据库  按照姓名查询  并按照获取数字值进行分页
        $data = DB::table('tbl_logistics')->where('logisticscompany','like','%'.$search.'%')->paginate($count);
        //对$request所有的值和数据库查询的结果$data进行传值
        return view('admin.logistics.index',['data'=>$data,'request'=>$request->all()]);
    }

    public function getDelete($id){
        $res = DB::table('tbl_logistics') -> where('id','=',$id) -> delete();
        if($res){
            return redirect('/admin/logistics/index') -> with('success','删除成功');
        }else{
            return back() -> with('error','删除失败');
        }
    }

    public function getEdit($id){
        $data = DB::table('tbl_logistics') -> where('id','=',$id) -> first();
        return view('/admin/logistics/edit',['data'=>$data]);
    }

     public function postUpdate(Request $request){
         $data = $request -> all();
       //先判断图片是否上传 进行上传图片的处理 缩放 160*160
       if(!empty($data['logisticspic'])){
            //获取上传文件的后缀
            $ext = $request -> file('logisticspic') -> getClientOriginalExtension();
            //随机生成一个文件前缀名字
            $filename = date('Ymd',time()).mt_rand(10000,99999);
            //前缀后缀拼接成最后新的文件名称
            $newfilename = $filename.'.'.$ext;
            //上传文件到指定目录
            $request -> file('logisticspic') -> move('admin_assoc/images/logistics/',$newfilename);
            //获取上传文件的长宽
            $arr = getimagesize('admin_assoc/images/logistics/'.$newfilename);
            $width = $arr[0];
            $height = $arr[1];
            //根据指定大小来进行缩放处理
            self::suofang('admin_assoc/images/logistics/'.$newfilename,160,160,$pre = 'logisticspic_');
            //缩放完成后删除上传的原图片
            unlink('admin_assoc/images/logistics/'.$newfilename);
            //最后需要存储到数据库的图片名字
            $logisticspic = 'logisticspic_'.$newfilename;
           }else{
            //将为对应的数据库图片查询出来
                $s = DB::table('tbl_logistics')
                            ->where('id',$data['id'])
                            ->first();
                $logisticspic = $s['logisticspic'];
           }

            $arr = $request -> except('_token','id');
        $arr['logisticspic'] = $logisticspic;
         // var_dump($arr);exit;
        $res = DB::table('tbl_logistics') ->where('id',$request->input('id')) -> update($arr);
        if($res){
            return redirect('/admin/logistics/index') -> with('success','修改成功');
        }else{
            return back();
        }
    }


}
